package com.wlyuan.open.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.wlyuan.open.OpenBaseSyncDTO;
import com.wlyuan.open.dto.consignee.ConsigneeConfigDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author yuanzheng
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class OpenConsigneeSyncDTO extends OpenBaseSyncDTO implements Serializable {
    private static final long serialVersionUID = 5363520787710395172L;
    private Long consigneeId;

    @ApiModelProperty(value = "收货方名称")
    private String name;

    @ApiModelProperty(value = "联系人")
    private String contactName;

    @ApiModelProperty(value = "联系电话")
    private String contactMobile;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "地址列表")
    private List<OpenReceivingAddressSyncDTO> addressList;

    @ApiModelProperty(value = "状态: 0-可用 1-不可用")
    private Integer status;

    @ApiModelProperty(value = "邮箱")
    @JSONField(alternateNames = "email")
    private String contactEmail;

    @Range(min = 1, max = 11, message = "行业不存在")
    @ApiModelProperty(value = "行业")
    private Integer industry;

    @ApiModelProperty(value = "公司网站")
    private String url;

    @ApiModelProperty(value = "公司简称")
    private String abbr;

    @ApiModelProperty(value = "英文名")
    private String englishName;

    @ApiModelProperty(value = "英文名简称")
    private String englishAbbr;

    @ApiModelProperty(value = "logo")
    private String logo;

    @ApiModelProperty(value = "传真")
    private String fax;

    @ApiModelProperty(value = "邮编")
    private String zipcode;

    @ApiModelProperty(value = "简介")
    private String profile;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "开户行名称")
    private String bankName;

    @ApiModelProperty(value = "银行账号")
    private String bankAccount;

    @ApiModelProperty(value = "企业法人")
    private String corporation;

    @ApiModelProperty(value = "营业执照")
    private String businessLicenseUrl;

    @ApiModelProperty(value = "微信公众号")
    private String wechatOfficialNo;

    private LocalDateTime createAt;
    private LocalDateTime updateAt;
    private Long createBy;
    private Long updateBy;

    private ConsigneeConfigDTO consigneeConfig;
}
